#ifndef __GX_C_FUNCTION_H
#define __GX_C_FUNCTION_H


// 这个文件的必要性在于，以纯C函数的形式导出一些功能，这样luaJIT可以使用 


#include "types.h"


#ifdef WIN32
#define CF_EXPORT  __declspec(dllexport)
#else
#define CF_EXPORT
#endif



// 为了让Lua能够使用而写的C函数
extern "C"{
	
struct Slice{
	uint16_t len_;
	const char *mem_;
};

CF_EXPORT void gx_set_context(struct GXContext*);

CF_EXPORT struct GXContext* gx_get_context();
	
CF_EXPORT void* gx_env_get_shared_ptr(int index);

CF_EXPORT bool gx_env_set_shared_ptr(int index,void *p);

CF_EXPORT int gx_write_here(int c, const char *s, int len);

CF_EXPORT int gx_close(int c);

void gxRegisterCFunctions(lua_State *L);

}


#endif

